#include "Ai.hpp"
#include "task.h"
#include "fruit.h"

#define POURCENTAGE_CRITIQUE_VIE        0.25
#define TOLERANCE_PEUR                  300
#define RAYON_PEUR                      5


Task::Task(TYPE_TASK type0, Fruit *idP, int id, unsigned int x0, unsigned int y0, int val){
    type = type0;
    idParent = idP;
    idTarget = id;
    x=x0;
    y=y0;
    value=val;
    age=0;
}

Task::Task() {
    type = T_IDLE;
}



bool Task::mustFlee()
{
    float variableQuiIndiqueLePourcentageDeVieRestanteAuFruitConsidere = float(idParent->life)/float(idParent->maxLife);

    int moyenne_peur = 0;

    for(int i = -1*RAYON_PEUR; i <= RAYON_PEUR;i++)
    {
        for(int j = -1*RAYON_PEUR; j <= RAYON_PEUR;j++)
        {
            if(ai.world.exists(i,j))
                moyenne_peur+=ai.world.at(idParent->position->X_coord+i,idParent->position->Y_coord+j).danger_estimation;    //Ceci est probablement faux.
        }
    }

    moyenne_peur /= RAYON_PEUR*RAYON_PEUR;

    return moyenne_peur >= variableQuiIndiqueLePourcentageDeVieRestanteAuFruitConsidere * TOLERANCE_PEUR;
}

bool Task::needResupply() {
    //gérer le niveau de munitions
    return false;
}

bool Task::loot() {
    //loot à ramasser à côté

    return true;

}

bool Task::execute() {
    return false;
}

